/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Client;
import Server.MailServer;
import java.util.LinkedList;

/**
 *
 * @author Lab-214-21
 */
public class MailClient {
    String NombreUsuario;
    MailServer Servidor;
    
    LinkedList<Message> MensajesRecibidos;

     public MailClient()
    {
    NombreUsuario="";
    Servidor=null;
    MensajesRecibidos=new LinkedList<Message>();
    }
    
    public MailClient(MailServer s)
    {
    NombreUsuario="";
    Servidor=s;
    MensajesRecibidos=new LinkedList<Message>();
    s.getClientes().add(this);
    }
    public MailClient(String NombreServidor)
    {
    NombreUsuario="";
    Servidor=new MailServer(NombreUsuario);
    MensajesRecibidos=new LinkedList<Message>();
    Servidor.getClientes().add(this);
    }
    public String getNombreUsuario() {
        return NombreUsuario;
    }

    public void setNombreUsuario(String NombreUsuario) {
        this.NombreUsuario = NombreUsuario;
    }

    public MailServer getServidor() {
        return Servidor;
    }

    public void setServidor(MailServer Servidor) {
        this.Servidor = Servidor;
    }

    public LinkedList<Message> getMensajesRecibidos() {
        return MensajesRecibidos;
    }

    public void setMensajesRecibidos(LinkedList<Message> MensajesRecibidos) {
        this.MensajesRecibidos = MensajesRecibidos;
    }
    
   
    
    public int CheckMessages()
    {
        return MensajesRecibidos.size();
    }
    
    public String ReadNextMessage()
    {
        for (int i=0;i<MensajesRecibidos.size();i++)
        {
            Message aux=MensajesRecibidos.get(i);
            if(!(aux.leido))
            {
                aux.leido=true;
                return aux.ToString();
            }
        }
        return "No hay mas mensajes sin leer";
    }
    
    public void SendMessage(String Asunto, String Destinatario, String Mensaje)
    {
        Message MiMensaje=new Message();
        MiMensaje.setAsunto(Asunto);
        MiMensaje.setDestinatario(Destinatario);
        MiMensaje.setLeido(false);
        MiMensaje.setSender(NombreUsuario);
        MiMensaje.setMensaje(Mensaje);
        Servidor.Post(MiMensaje);
    }
    
    public int NroMensajesNoLeidos()
    {
        int n=0;
        for (int i=0;i<MensajesRecibidos.size();i++)
        {
            Message aux=MensajesRecibidos.get(i);
            if(!(aux.leido))
                n++;
        }
        return n;
    }
  
}

